package licence

import (
	"time"
)

const (
	// 日期显示格式
	DateFormat = "2006-01-02"
)

/*
检查日期格式

	2006-01-02
*/
func VerifyDate(date string) bool {
	if _, err := time.Parse(DateFormat, date); err != nil {
		return false
	} else {
		return true
	}
}

/*
日期转换 (短格式) (3个字符足够100年的容量)
	1. 计算目标日期距离固定日期的相差天数
	2. 将相差天数转换成 34进制码

例如目标日期距离2006-01-02日期之后的6572天
	2023-12-31 => 6572 => 5PA
*/
func shortDate(date string) string {
	t1, _ := time.Parse(DateFormat, DateFormat)
	t2, _ := time.Parse(DateFormat, date)
	n := int(t2.Sub(t1).Hours() / 24)
	return str34(n, 3)
}

/*
日期转换 (长格式)
	1. 将34进制字符串转换成相差天数
	2. 根据相差天数推算目标日期

例如目标日期距离2006-01-02日期之后的6572天
	6572 => 5PA => 2023-12-31
*/
func longDate(date34 string) string {
	t1, _ := time.Parse(DateFormat, DateFormat)
	return t1.AddDate(0, 0, int34(format(date34))).Format(DateFormat)
}
